package com.kehutong.repair.entity;

import java.time.LocalDateTime;
import java.util.List;

import com.kehutong.repair.enums.OperationType;
import org.coraframework.json.annotation.JSONField;
import org.coraframework.orm.Entity;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.annotation.UnSave;

import com.kehutong.repair.enums.RepairsStatus;
import com.kehutong.repair.enums.Source;

/**
 * 报事报修
 */
@Table(value="t_repairs", comment="报事报修", multi=true)
public class Repairs extends Entity {

    private static final long serialVersionUID = -3653528423817599988L;

    protected Repairs(String id) {
        super(id);
    }

    @Column(comment = "巡更工单ID")
    private String jobId;

    @Column(comment = "单号")
    private String noId;

    @Column(comment = "小区编号")
    private String communityNo;

    @Column(comment="房屋信息")
    private String houseInfo;

    @Column(comment="故障地点")
    private String faultPosition;

    @Column(comment="联系人姓名")
    private String contactName;

    @Column(comment = "发布人id")
    private String createById;

    @Column(comment = "发布人")
    private String createBy;

    @Column(comment="联系人电话")
    private String contactMobile;

    @Column(comment = "报修类型的id")
    private String typeId;

    @Column(comment = "报修类型的名字")
    private String typeName;

    @Column(comment = "预约开始时间")
    private LocalDateTime appointmentStartTime;

    @Column(comment = "预约结束时间")
    private LocalDateTime appointmentEndTime;

    @Column(length = 512, comment = "报修详情")
    private String detail;

    @Column(comment = "上传的图片ids")
    private List<String> imageIds;

    @Column(comment = "状态")
    private RepairsStatus repairsStatus;

    @Column(comment = "来源")
    private Source source;

    @Column(length = 512, comment = "处理结果")
    private String processingResults;

    @Column(length = 512, comment = "处理结果的图片ids")
    private List<String> resultsImageIds;

    @Column(comment = "完成时间")
    private LocalDateTime completeTime;

    @Column(comment = "执行人")
    private List<String> exeEmployeeNo;

    @Column(comment = "关注人")
    private List<String> attnEmployeeNo;

    @Column(comment = "受理人")
    private String employeeNo;

    @Column(comment = "受理时间")
    private LocalDateTime assignTime;

    @Column(comment = "超时时间")
    private LocalDateTime timeOut;

    @Column(comment = "总体评价星级")
    private int total;

    @Column(comment = "服务态度星级")
    private int attitude;

    @Column(comment = "响应速度星级")
    private int speed;

    @Column(comment = "评价")
    private String evaluation;

    @Column(comment = "类型")
    private OperationType type;

    @JSONField(serialize=false)
    @Column(comment="逻辑删除")
    private boolean deleted;

    @UnSave
    private String exeRoleNames;    //执行人

    @UnSave
    private String attnRoleNames;   //关注人

    @UnSave
    private String time;

    @UnSave
    private String countdown;

    @UnSave
    private String communityName;

    public String getNoId() {
        return noId;
    }

    public void setNoId(String noId) {
        this.noId = noId;
    }

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public String getHouseInfo() {
        return houseInfo;
    }

    public void setHouseInfo(String houseInfo) {
        this.houseInfo = houseInfo;
    }

    public String getFaultPosition() {
        return faultPosition;
    }

    public void setFaultPosition(String faultPosition) {
        this.faultPosition = faultPosition;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getCreateById() {
        return createById;
    }

    public void setCreateById(String createById) {
        this.createById = createById;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getContactMobile() {
        return contactMobile;
    }

    public void setContactMobile(String contactMobile) {
        this.contactMobile = contactMobile;
    }

    public String getTypeId() {
        return typeId;
    }

    public void setTypeId(String typeId) {
        this.typeId = typeId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public LocalDateTime getAppointmentStartTime() {
        return appointmentStartTime;
    }

    public void setAppointmentStartTime(LocalDateTime appointmentStartTime) {
        this.appointmentStartTime = appointmentStartTime;
    }

    public LocalDateTime getAppointmentEndTime() {
        return appointmentEndTime;
    }

    public void setAppointmentEndTime(LocalDateTime appointmentEndTime) {
        this.appointmentEndTime = appointmentEndTime;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    public List<String> getImageIds() {
        return imageIds;
    }

    public void setImageIds(List<String> imageIds) {
        this.imageIds = imageIds;
    }

    public RepairsStatus getRepairsStatus() {
        return repairsStatus;
    }

    public void setRepairsStatus(RepairsStatus repairsStatus) {
        this.repairsStatus = repairsStatus;
    }

    public Source getSource() {
        return source;
    }

    public void setSource(Source source) {
        this.source = source;
    }

    public String getProcessingResults() {
        return processingResults;
    }

    public void setProcessingResults(String processingResults) {
        this.processingResults = processingResults;
    }

    public List<String> getResultsImageIds() {
        return resultsImageIds;
    }

    public void setResultsImageIds(List<String> resultsImageIds) {
        this.resultsImageIds = resultsImageIds;
    }

    public LocalDateTime getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(LocalDateTime completeTime) {
        this.completeTime = completeTime;
    }

    public List<String> getExeEmployeeNo() {
        return exeEmployeeNo;
    }

    public void setExeEmployeeNo(List<String> exeEmployeeNo) {
        this.exeEmployeeNo = exeEmployeeNo;
    }

    public List<String> getAttnEmployeeNo() {
        return attnEmployeeNo;
    }

    public void setAttnEmployeeNo(List<String> attnEmployeeNo) {
        this.attnEmployeeNo = attnEmployeeNo;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public LocalDateTime getAssignTime() {
        return assignTime;
    }

    public void setAssignTime(LocalDateTime assignTime) {
        this.assignTime = assignTime;
    }

    public LocalDateTime getTimeOut() {
        return timeOut;
    }

    public void setTimeOut(LocalDateTime timeOut) {
        this.timeOut = timeOut;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getAttitude() {
        return attitude;
    }

    public void setAttitude(int attitude) {
        this.attitude = attitude;
    }

    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    public String getEvaluation() {
        return evaluation;
    }

    public void setEvaluation(String evaluation) {
        this.evaluation = evaluation;
    }

    public OperationType getType() {
        return type;
    }

    public void setType(OperationType type) {
        this.type = type;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public String getExeRoleNames() {
        return exeRoleNames;
    }

    public void setExeRoleNames(String exeRoleNames) {
        this.exeRoleNames = exeRoleNames;
    }

    public String getAttnRoleNames() {
        return attnRoleNames;
    }

    public void setAttnRoleNames(String attnRoleNames) {
        this.attnRoleNames = attnRoleNames;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getCountdown() {
        return countdown;
    }

    public void setCountdown(String countdown) {
        this.countdown = countdown;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public String getJobId() {
        return jobId;
    }

    public void setJobId(String jobId) {
        this.jobId = jobId;
    }
}
